Few-shot Natural Language Generation for Task-Oriented Dialog

介绍最新的NLG模型

Introduction

在任务型对话系统中,NLG(Natural Language Generation)负责将Diaact转化为自然语言,如下图所示:

与传统的文本生成任务不同的是,NLG的输入是结构化的Diaact,本质上是意图和槽值对的集合,因此,NLG的重点是在保证事实一致性(意图和槽位一致)的前提下,尽可能增加自然语言文本的流畅性和多样性。

现有的NLG模型分为两类:

  1. Template-based methods: 人工构建模板,然后使用Diaact中的槽值替换模板的placeholder。
  2. Statistical language models: 在语言模型中融入Diaact的信息,使用端到端的生成模型。一个比较早期的工作是SC-LSTM,缺点是需要大量的监督数据。

因此,本文提出了一种基于预训练语言模型GPT的NLG模型SC-GPT,使用三阶段的训练策略:纯文本预训练+NLG数据预训练+目标域finetune。同时,本文基于MultiWOZ和Cambridge NLG数据集构造了一个低资源的NLG benchmark FEWSHOT-WOZ,共包含7个领域,每个领域仅有50个标注样本用作目标域finetune。

Method

如下图所示,SC-GPT类似于GPT-2模型,只是增加了Diaact的输入,作者直接以拼接的方式进行输入,同时在生成的文本序列加入[BOS]和[EOS]标识符,训练过程中只计算生成文本的损失。
Illustration  of  SC-GPT.  In this example, SC-GPT  generates  a  new  word  token  (e.g.,  “confirm”  or “center”)  by  attending  the  entire  dialog  act  and  word  tokens  on  the  left  within  the  response.

作者设计三阶段的训练目标:

  1. Massive Plain Language Pre-training: 类似GPT-2的预训练方式
  2. Dialog-Act Controlled Pre-training: 在收集的Schema-Guided Dialog corpus, MultiWOZ corpus, Frame corpus, and Facebook Multilingual Dialog Corpus上进行NLG的预训练,整个数据集的规模大约为400k。
  3. Fine-tuning: 在目标域finetune,仅有50个标注样本。

Experiment

Dataset

Comparison  of  existing  NLG  datasets,  including  E2E  NLG  (Novikova  et  al.,  2017),  BAGEL(Mairesse et  al.,  2010),  Cambridge  NLG(Wen  et  al.,  2016a)  and  the  proposed  FEWSHOTWOZ.

FEWSHOTWOZ  statistics  over  7  different  domains.

Result

Reference

  1. Semantically conditioned LSTM-based natural language generation for spoken dialogue systems, EMNLP 2015
  2. https://kami.app/pAC-iFi-sHg
  3. https://github.com/pengbaolin/SC-GPT